#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>

/*********************************color的封装********************************/
// 清除屏幕
int clear(int *addr, int color)
{
    // 通过lcd的映射的指针直接给lcd刷颜色
    int x = 0; // 横轴
    int y = 0; // 纵轴
    for (y = 0; y < 480; y++)
    {
        for (x = 0; x < 800; x++)
        {
            *(addr + y * 800 + x) = color; // 背景色
        }
    }
}

// 画线 起始坐标(x0,y0) 长度length 宽度width 颜色color
int show_line(int *addr, int x0, int y0, int length, int width, int color)
{
    // 通过lcd的映射的指针直接给lcd刷颜色
    int x = 0; // 横轴
    int y = 0; // 纵轴
    for (y = 0; y < 480; y++)
    {
        for (x = 0; x < 800; x++)
        {
            // *(addr + y * 800 + x) = white; // 背景色
            if (x > x0 && x < (x0 + length) && y > y0 && y < (y0 + width))
                *(addr + y * 800 + x) = color; // 红色
        }
    }
}

// 画圆 圆心坐标(a.b) 半径r 颜色color
int show_circle(int *addr, int a, int b, int r, int color)
{
    // 通过lcd的映射的指针直接给lcd刷颜色
    int x = 0; // 横轴
    int y = 0; // 纵轴
    for (y = 0; y < 480; y++)
    {
        for (x = 0; x < 800; x++)
        {
            // *(addr + y * 800 + x) = white; // 背景色
            if ((x - a) * (x - a) + (y - b) * (y - b) <= r * r)
                *(addr + y * 800 + x) = color; // 红色
        }
    }
}